package com.accounting.client.remote;

import com.accounting.client.remote.obj.Customer;
import com.accounting.client.remote.transfer.AddCustomerRequest;
import com.accounting.client.remote.transfer.CreatePurchaseListRequest;
import com.accounting.client.remote.transfer.UpdateCustomerRequest;
import com.google.gwt.user.client.rpc.AsyncCallback;

import corelib.client.search.JSONSearchRequest;
import corelib.client.search.JSONSearchResult;
import corelib.client.search.PagingRequest;
import corelib.client.search.PagingResult;

public interface CustomerServiceAsync {

	public void AddCustomer	   (String passport, AddCustomerRequest request, 	AsyncCallback<String> callback);
	public void UpdateCustomer (String passport, UpdateCustomerRequest request, AsyncCallback<Boolean> callback);
	public void RemoveCustomer (String passport, String customerId, 		AsyncCallback<Boolean> callback);
	public void ListCustomers  (String passport, PagingRequest request, 	AsyncCallback<PagingResult<Customer>> callback);
	public void SearchCustomers(String passport, JSONSearchRequest request, AsyncCallback<JSONSearchResult<Customer>> callback);
	public void SendPurchaseRequest(String passport, CreatePurchaseListRequest request, AsyncCallback<Boolean> callback);
	
}
